#继承
#类与类之间变成父子关系,子类默认继承父类的所有属性和方法 子类可以使用继承来的属性和方法
#定义 class 类名(父类名)
#单继承
class User:
    def hello(self):
        print("父hello")
class Man(User): #pass 占位符 代表跳过 函数体写pass 代表函数体跳过,为空
    def hi(self):
        print("子hi")
user1 = User()
user1.hello()
man1 = Man()
man1.hi()
man1.hello()
#多重继承 A/B/C C(子类)拥有B和A的属性和方法
#方法的重写 在子类中定义和父类相同的方法
#方法的扩展 子类继承父类的方法,并添加自己的功能
class Woman(User):
    def hello(self): #重写
        User.hello(self) #第一种扩展 父类.方法() 可以继续调用父类的方法
        super().hello() #第二种扩展(推荐) super().方法() super()相当于实例了一个super对象,这个对象可以调用父类的方法
        super(Woman,self).hello() #第三种扩展 super(子类.self).方法() 第二种的全写
        print("子重写方法hello")
print("--------")
woman1 = Woman()
woman1.hello()